package com.itheima.article.service;

import com.itheima.article.dto.ArticleHomeDto;
import com.itheima.article.dto.ArticleInfoDto;
import com.itheima.article.dto.ArticleVisitStreamMess;
import com.itheima.article.pojo.ApArticle;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.article.vo.ArticleInfoVo;
import com.itheima.common.vo.PageResultVo;

import java.util.List;

/**
 * @description <p>已发布的文章信息 业务接口</p>
 *
 * @version 1.0
 * @package com.itheima.article.service
 */
public interface ApArticleService extends IService<ApArticle> {

    /**
     * 同步时，保存文章数据
     * @param dto
     */
    void saveArticleInfo(ArticleInfoDto dto);

    /**
     * App文章列表分页查询
     * @param dto
     * @param loadMore
     * @return
     */
    List<ApArticle> findPage(ArticleHomeDto dto, int loadMore);

    /**
     * 加载文章详情
     * @param articleId
     * @return
     */
    ArticleInfoVo loadArticleInfo(Long articleId);

    /**
     * 计算5天前的文章的分数，并存入redis 使用zset，热点文章排序
     */
    void computeAndSave2Redis();

    /**
     * 更新文章数量与重新计算再存入redis
     * @param mess
     */
    void computeAndSave2RedisSingle(ArticleVisitStreamMess mess);
}
